#pragma once

#include "iengine.h"

namespace Core {

/**
 * @brief The IdleEngine class implements Core::IEngine
 * This engine does nothing
 */
class IdleEngine : public IEngine
{
public:
    static IdleEngine* instance()
    {
        static IdleEngine global;
        return &global;
    }

    void initialization(SDL_Surface *) {}
    void destroy() {}
    void logic(const long &) {}
    void draw() {}
    void onKeyDown(SDLKey) {}
    void onKeyUp(SDLKey) {}
    void onMouseDown(MouseEvent) {}
    void onMouseUp(MouseEvent) {}
    void onMouseMove(MouseEvent) {}

private:
    IdleEngine() {}
    virtual ~IdleEngine() {}
};

} // namespace Core
